🦊Masking Model Weights
🏠 | 🦊雑に学ぶComfyUI
👈 | 🦊領域指定
👉 | 🦊Scheduling Model Weights
左上はこのプロンプト、右下だけにこのLoRAを適用…等、一部分にだけ特定の設定をして画像生成を行うことができます
ConditioningSetAreaPercentageノードとConditioningSetTimestepRangeノードを組み合わせて使いやすくしたもの(らしい)
とても詳しい解説
Masking and Scheduling LoRA and Model Weights
https://github.com/city96/ComfyUI-GGUF/issues/193After updating GGUF, using lora via HOOKS causes an error: AttributeError: 'Linear' object has no attribute 'temp'
現状ComfyUI-GGUFとは併用出来ない
マスクでプロンプトの適用範囲を指定 (🚨ダメな例)
https://gyazo.com/e0e60eb429079e2108c1a78a41c702f1
Cond Set Props_w_Conditioning(Combine).json
🟩Cond Set Propsノードにプロンプトからのコンディションとマスクをつなぎました
🟥このままだとマスクされてない部分のコンディションが無いので、もう一個プロンプトを書いてConditioning (Combine)ノードで組み合わせればいけそうです
…が、生成された画像とマスクを見比べてみると、どうもうまくいっていないようです
マスクでプロンプトの適用範囲を指定 (OKな例)
https://gyazo.com/2e4d17c97adde0cd1e08a98d0605f265
Cond Set Props_w_Conditioning(Combine)_w_invertMask.json
(面倒くさいことに)どこかのコンディションにマスクをつけてしまった場合、他のコンディションもすべてマスクを適用しないといけません
🟦2つ目コンディションは、1つ目に適用されたマスクの部分以外、つまるところ反転させたマスクを適用させればいいので、InvertMaskノードで反転させます
🟩🟥同様にCond Set Propsノードにつなぎ、Conditioning (Combine)でつなげばOKです
Cond Set Props Combineノード
https://gyazo.com/662bf300e1e2618dbcaa20c1ac049576
Cond Set Props_w_Cond Set Props Combine.json
Cond Set PropsノードとConditioning (Combine)ノードが合体しただけです
Cond Set Default Combineノード
https://gyazo.com/59a4bc6adc8f027d2bda6c2c910082bf
Cond Set Props_w_Cond Set Default Combine.json
マスクが一個や二個ならいいですが、これが増えてくるとマスクされてない部分はどこなんじゃい🫠となってきます
そこで役に立つのがCond Set Default Combineノードです(似た名前ばっかで大変だ)
🟪これに繋がれたコンディションをデフォルトとして適用してくれます
上の反転させたものとは違い、既定値として設定できる、というのが重要です
コンディションのstrengthを1より小さくしたとき
A. マスクされたコンディション + 反転マスクされたコンディション
マスクされたコンディションを弱くしても、その下にベースとなる設定がありません
そのため、単純に弱いプロンプトとして扱われます
B. マスクされたコンディション + Defaultに設定されたコンディション
マスクされたコンディションを弱くした場合、その下にDefaultに設定されたコンディションがあるのでコンディションが混ざります
マスクされたコンディションのstrengthを0.5にしてみる
https://gyazo.com/e9b67072b600c78a35bb209d386e9911https://gyazo.com/209e4722808a0fae48500a4f99b713f9
A / B
Cond Pair なんちゃら
https://gyazo.com/43c7aa9c644e50749a879947e5525a2e
Cond Pair.json
上のノードたちはContditionのピンが一つだけでしたが、Pairとついたものを使うとPositiveとNegativeをセットで設定できます
LoRAの適用範囲を指定
https://gyazo.com/e99bd515f35b49bb6080a400da7544d2
Cond Set Props_w_LoRA.json
通常のLoad LoRAノードの代わりにSet CLIP HooksノードとCreate Hook LoRAノードを使います
基本的な違いは、LoRAのCLIPの重みのON/OFFをトグルで設定できるようになるだけです
が、このマスクと一緒に実装された機能を使うと、サンプリングステップの一部分のみLoRAを適用する、といったことができるようになります
https://gyazo.com/8be1459c643c282b36ba4e293d3566e9
Cond Set Props_w_LoRA(MO).json
🟩🟨FluxのLoRAのようにCLIPが関係ない場合、Create Hook LoRA (MO)ノードを直接Cond Pair Set Propsノードに繋げる
🦊Scheduling Model Weights へ続く…